<!DOCTYPE html>
<html lang="en">

<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Document</title>
</head>

<body>
  <script>
    // [0,1) 左开右闭 能取到0但是不能取到1 之间的一个随机小数 0-0.9999999999999...
    console.log(`[0,1):${Math.random()}`)
    console.log('----------------------')

    //0-10之间的整数
    console.log(`[0,10]:${Math.floor(Math.random() * (10 + 1))}`)
    /* 解释为什么乘11而不是10: 因为右边是开区间，比如你取0-5，你左边不用管闭区间可以取到，
    但右边是开区间，永远娶不到5，所以你要乘以(5 + 1) = 6 这样才能包含5，你也不要担心会取到6，
    因为右边是闭合的，最多是5.9999999999，又因为你是向下取整数，所以最多取到5，总的即[0,5] */
    //0-5之间的整数
    console.log(`[0,5]:${Math.floor(Math.random() * (5 + 1))}`)
    console.log('-----------------------')

    //随机数组元素
    let arr = ['li', 'sheng', 'hao']  //下标0，1，2 等于数组长度
    let i = Math.floor(Math.random() * arr.length)
    console.log(`${i + 1}对应${arr[i]}`)
    console.log(arr[i])
    console.log('-----------------------')

    //随机M-N的整数
    function getRandom(N, M) {
      return Math.floor(Math.random() * (M - N + 1)) + N
    }
    let re = getRandom(4, 8)
    console.log(`[4,8]:${re}`)
    console.log(`[10,20]:${Math.floor(Math.random() * (11)) + 10}`)
  </script>
</body>

</html>